Relative Debugging Using Multiple Program Versions

نویسندگان

  • David Abramson
  • Rok Sosi
چکیده

Incremental software development is the process of building new programs by modifying old ones. This method of programming is extremely common, and takes advantage of existing pieces of software which are known to be correct. The result is that are many software versions in existance at the same time. To date, most software development tools have addressed only one aspect of incremental software development, namely, source code control. An equally important issue is in verifying that future versions of a program have the same dynamic behaviour as the original. Currently, there are no tools which address this issue. In this paper we introduce a new concept called relative debugging, which supports the incremental development of computer programs. Relative debugging makes it possible to compare the execution of two programs with the same functionality. The programs can run on the same computer, or on di erent computers connected by a network. They can di er in their source programming language or in implementation details. One of the programs usually serves as a reference version which produces the desired results. The execution of the other process is compared to the reference version in order to nd discrepancies. We describe basic primitives for relative debugging and their implementation in a debugger called Guard. Guard is built on top of our portable debugging interface which provides a debugging platform for heterogeneous environments. The utility of Guard is illustrated by a practical example, in which a program written in Fortran is used to nd errors in a version of the same code written in the C programming language.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The HPCVL Working Template: A Development Tool for Parallel Programming

This manual explains the structure and usage of the HPCVL Working Template for parallel programming that was developed by Gang Liu. The HPCVL Working Template (in the following abbreviated to HWT) is a set of scripts and routines that provide a simple and portable tool for version maintenance, timing and automatic relative debugging of programs that are designed to run on parallel computers. Th...

متن کامل

Relative Debugging: A New Debugging Paradigm

Incremental software development is the process of building new programs by modifying old ones. This method of programming is extremely common, and takes advantage of existing pieces of software which are known to be correct. To date, most software development tools have addressed only one aspect of incremental software development, namely, source code control. An equally important issue is in ...

متن کامل

Relative Debugging: A new methodology for debugging scientific applications

Because large scientific codes are rarely static objects, developers are often faced with the tedious task of accounting for discrepancies between new and old versions. This paper describes a new technique called relative debugging that addresses this problem by automating the process of comparing a modified code against a correct reference code. The paper examines the utility of the relative d...

متن کامل

DUCT: An Interactive Define-Use Chain Navigation Tool for Relative Debugging

This paper describes an interactive tool that facilitates following define-use chains in large codes. The motivation for the work is to support “relative debugging”, where it is necessary to iteratively refine a set of assertions between different versions of a program. DUCT is novel because it exploits the Microsoft Intermediate Language (MSIL) that underpins the .NET Framework. Accordingly, i...

متن کامل

Bisection Debugging

This paper introduces the bisection debugging model. The key idea is to use a debugger to identify the semantic differences between two versions of the same program. The debugger leads the user (programmer) to the region of the source code that is different between the versions and effects erroneous behavior. To implement bisection debugging, a debugger must insert checkpoints around regions of...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995